<template>
  <div class="upload">
    <el-card>
      <!-- 接收路由传递进来的值 -->
      <h3 style="text-align: center">{{ $route.query.name }}导入</h3>
      <uploadExcel :on-success="onSuccess" />
    </el-card>
  </div>
  <!-- username	string	非必须		姓名
mobile	string	非必须		手机号
formOfEmployment	number	非必须		聘用形式
workNumber	string	非必须		工号
departmentName	string	非必须		组织名称
timeOfEntry	string	非必须		入职时间
correctionTime	string	非必须		转正时间	 -->
</template>

<script>
import uploadExcel from '@/components/lib/uploadExcel.vue'
// 批量导入
import { sysUserbatch } from '@/api/employees.js'
export default {
  components: {
    uploadExcel
  },
  methods: {
    async onSuccess({ header, results }) {
      const obj = {
        // 将results中数据的中文的key转换成英文的key
        入职时间: 'timeOfEntry',
        姓名: 'username',
        工号: 'workNumber',
        手机号: 'mobile',
        转正日期: 'correctionTime'
      }
      // 通过数组循环转换产生一个新的数组(key值为英文)
      const arr = results.map((item) => {
        const newObj = {}
        // ['入职日期, '姓名']
        // 对每一项的对象进行循环
        Object.keys(item).forEach((item2) => {
        // 赋值英文key与值进行循环
          newObj[obj[item2]] = item[item2]
          if (obj[item2] === 'timeOfEntry' || obj[item2] === 'correctionTime') {
            newObj[obj[item2]] = this.chnageDate(item[item2])
          }
        })
        // return 新对象作为数组的项
        return newObj
      })
      console.log(header, results, arr)
      await sysUserbatch(arr)
      this.$message.success('成功')
      this.$router.push('/employees')
    },
    chnageDate(num) {
    // 将时间转换成时间戳
      const t = new Date((num - 1) * 24 * 60 * 60 * 1000 - 8 * 60 * 60 * 1000)
      t.setYear(t.getFullYear() - 70)
      return t
    }
  }
}
</script>

<style>

</style>
